Battery efficient wireless network connection and registration for a low-power device

ABSTRACT

A client device is configured to communicate with an access point over a wireless network, exchanging data with the access point over a selected communication channel. After the wireless connection to the access point has ended, the client device receives a probe from the access point over a low-level layer, such as a data link layer. In response to receiving the probe, the client device reconnects to the access point.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/278,640, filed Feb. 18, 2019, which claims the benefit of U.S.Provisional Patent Application No. 62/633,017, filed Feb. 20, 2018,which are incorporated herein by reference in their entirety.

TECHNICAL FIELD

This disclosure relates to connecting a low-power wireless device to awireless network and registering the device in a battery-efficientmanner.

BACKGROUND

Wireless access points enable computing devices to communicate withother devices in a network. A computing device can send data to anaccess point for transmission over the network or receive data from theaccess point that originated from another device in the network. Theaccess point and computing device may communicate with one another via aplurality of communication channels, each of which represents a logicalcoupling between the access point and the computing device and specifiesa range of frequencies for signals transmitted to or from the devices.The access point and computing device switch between communicationchannels in response to dynamic conditions, including varying traffic onthe channels and changing distances between the access point and device.

Current protocols used by computing devices to connect to andcommunication with wireless access points are power-intensive. Forexample, when connecting to an access point, a computing device may sendone or more probes to the access point over each of multiple channels.Each of these probes consumes power at the computing device. Forlow-power devices, such as those operating on a battery without adedicated power line, connecting to an access point by standard methodscan consume excessive power and reduce the amount of time each batterycharge will last.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a representative computer network environment.

FIG. 1B is a chart listing frequency ranges for channels in a 2.4 GHZband.

FIG. 1C is a chart listing center frequencies for channels in a 5 GHzband.

FIG. 2 is a block diagram illustrating components of a wireless device,according to some embodiments.

FIG. 3 is an interaction diagram illustrating a process for establishinga wireless network connection between a wireless client device and anaccess point, according to some embodiments.

FIG. 4 is a block diagram illustrating an example processing system inwhich at least some operations described herein can be implemented.

DETAILED DESCRIPTION

An access point and a wireless client device establish a connection overa radio frequency communication channel in a manner that reduces powerusage at the client device. Although the wireless device may be anydevice capable of communication over a network, various embodiments of awireless device are described herein with respect to a video camera thatis capable of capturing video and transmitting the video over a wirelessnetwork to a remote server. The video camera may be used, for example,as a home or office security camera that remains in a substantiallystatic position (e.g., at a front door). When the position of the devicedoes not change frequently, the device may not need to connect to anddisconnect from wireless access points as frequently as a more mobiledevice, and may not need to switch channels as frequently. Furthermore,a specialized client device such as a video camera may communicate withthe access point infrequently. For example, a video camera triggered bymotion may turn on to capture and transmit video data for only a fewminutes each day, while otherwise operating in a standby or low-powerstate. To reduce an amount of power consumed by the client device, theclient device and access point can employ various techniques toestablish network connections with reduced power consumption. In somecases, the client device can store an identifier of the channel usedduring a communication session with the access point before the clientdevice switches to the standby state. When the device transitions intoan active state, the device can first attempt to reconnect to the samechannel. In other cases, the access point can attempt to restore aconnection to a client device.

In the following description, numerous specific details are set forthsuch as examples of specific components, circuits, and processes toprovide a thorough understanding of the present disclosure. Also, in thefollowing description and for purposes of explanation, specificnomenclature is set forth to provide a thorough understanding of thepresent embodiments. However, it will be apparent to one skilled in theart that these specific details may not be required to practice thepresent embodiments. In other instances, well-known circuits and devicesare shown in block diagram form to avoid obscuring the presentdisclosure.

The term “coupled” as used herein means connected directly to orconnected through one or more intervening components or circuits. Any ofthe signals provided over various buses described herein may betime-multiplexed with other signals and provided over one or more commonbuses. In addition, the interconnection between circuit elements orsoftware blocks may be shown as buses or as single signal lines. Each ofthe buses may alternatively be a single signal line, and each of thesingle signal lines may alternatively be buses, and a single line or busmight represent any one or more of a myriad of physical or logicalmechanisms for communication (e.g., a network) between components. Thepresent embodiments are not to be construed as limited to specificexamples described herein but rather to include within their scope allembodiments defined by the appended claims.

FIG. 1A is a representative computer network environment 100 withinwhich some embodiments may be implemented. The environment 100 includesan access point 110, a wireless device 120, and a remote server 130.Additional components not shown in FIG. 1A may also be included in theenvironment 100. For example, the environment 100 may further includeintervening devices (e.g., switches, routers, hubs, etc.) among theaccess point 110, the remote server 130, and the wireless device 120.Furthermore, the environment 100 may include multiple access points 110,remote servers 130, and/or wireless devices 120.

The wireless device 120 is a computing device communicatively coupled tothe access point 110 and remote server 130. In one embodiment, thewireless device 120 is a camera configured to capture and transmit videodata. The wireless device 120 can be any suitable network-connectedcameras (or “IP cameras”). For example, the wireless device 120 canoperate as a security camera in a home or office. In these cases, thewireless device 120 may be relatively static, remaining in approximatelythe same physical position at most times. It is contemplated thatadditional examples of the devices 120 equipped with video and audiorecording technology can include computing or mobile devices including,for example, smartphones, tablet computers, laptops, personal digitalassistants (PDAs), or the like. Additional examples of the devices 120can include home sensors (e.g., motion detection sensors and temperaturesensors) that can connect to the Internet.

The wireless device 120 may be configured to operate in an active,higher-power state and a standby, lower-power state. In the activestate, the wireless device 120 can generate or capture data, such asvideo data, and communicate with other devices. In the standby state,the wireless device 120 may reduce power consumption by notcommunicating with other devices and turning off one or more componentssuch as a camera and a main processor. When in the standby state, thewireless device 120 also does not send channel probes to the accesspoint 110.

The amount of time the wireless device 120 is in the active state may berelatively low compared to the amount of time the wireless device 120 isin the standby state. For example, the wireless device 120 may remainidle until triggered to capture video data by an input, such as a userinput or input from a motion detector. The wireless device 120 may alsohave a predetermined wake interval, at which time the device switchesfrom the standby state to the active state to check network conditions,transmit any stored data to the access point 110, or perform othertasks. The wake interval can be, for example, eight hours, such that thedevice 120 becomes active after eight hours if no triggering input hasbeen received in that interval.

The access point 110 enables the wireless device 120 to exchange data toand from the remote server 130. Although not shown for simplicity, theaccess point 110 may include one or more processors, which may begeneral-purpose processors or may be application-specific integratedcircuitry that provides arithmetic and control functions to implementthe techniques disclosed herein on the access point 110. Theprocessor(s) may include a cache memory (not shown for simplicity) aswell as other memories (e.g., a main memory, and/or non-volatile memorysuch as a hard-disk drive or solid-state drive). In some examples, cachememory is implemented using SRAM, main memory is implemented using DRAM,and non-volatile memory is implemented using Flash memory or one or moremagnetic disk drives. According to some embodiments, the memories mayinclude one or more memory chips or modules, and the processor(s) on theaccess point 110 may execute a plurality of instructions or programcodes that are stored in its memory. Some or all of the instructions orprogram codes executed by the processor can be collectively representedas an application 112. The application 112, when executed by theprocessor, can manage communication channels used by the access point110 to communicate with the wireless device 120.

The wireless device 120 can electronically couple to and communicatewith the access point 110 wirelessly via a plurality of availablecommunications channels 115. Although only three channels 115 are shownin FIG. 1A, the wireless device 120 and access point 110 may beconfigured to communicate by any number of channels 115. Each channel115 represents frequency for signals transmitted between the wirelessdevice 120 and access point 110. The channels 115 may be allocatedwithin one or more frequency bands defining a range of signalfrequencies, such as a 2.4 GHz band (including frequencies from 2.4 GHzto 2.5 GHz) and a 5 GHz band (including frequencies from 5 GHz to 6GHz). FIG. 1B is a chart listing frequency ranges for each of fourteenchannels allocated to the 2.4 GHz band, and FIG. 1C is a chart listingcenter frequencies for each of 24 channels allocated to the 5 GHz band.Some of the channels shown in FIGS. 1B and 1C may be available only insome geographic regions, while other geographic regions may usedifferent or additional channels. The channels 115 may include, by wayof example, three channels associated with the 2.4 GHz band: onecentered at 2412 MHz (channel 1 in FIG. 1B), one centered at 2437 MHz(channel 6), and one centered at 2462 MHz (channel 11). Similarly, the 5GHz band may include a plurality of channels distributed across thefrequency range defined for the band. One or more of the channels 115may be allocated to radar systems (referred to as a “DFS channel”), andthe wireless device 120 may employ dynamic frequency selection (DFS) touse these channels. When operating in a DFS mode, the wireless device120 monitors channels for radar signals and, if a signal is detected,automatically switches to another channel to reduce interference withthe radar signals.

The access point 110 communicates with the wireless device 120 on one ofthe channels 115 by transmitting a signal at the channel frequency viaan antenna 116 or receiving signals at the channel frequency via theantenna 116. The access point 110 can include multiple antennas 116configured to receive or transmit data on different channels 115. Forexample, the access point 110 may have a first antenna 116 configured tocommunicate on a channel associated with the 2.4 GHz band, while asecond antenna 116 is configured to communicate on a channel associatedwith the 5 GHz band.

The access point 110 can select a particular channel to use tocommunicate with the wireless device 120 and steer the wireless device120 to the selected channel. To perform the band steering, the accesspoint 110 listens for probes sent by the wireless device 120 on eachavailable channel 115 and responds to the probe on the selected channel.When the wireless device 120 receives the response, the wireless device120 may transmit future communications over the selected channel.

Communications between the wireless device 120 and access point 110 canuse, for example, the IEEE 802.11 family of standards (e.g., WirelessLAN) and/or other suitable types of area network technologies, such ascompeting or alternative standards to the IEEE 802.11 family ofstandards (e.g., WiMAX), and can include any suitable interveningwireless network devices including, for example, base stations, routers,gateways, hubs, or the like. Depending on the embodiments, the networktechnology connecting between the wireless devices 120 and the accesspoint 110 can include other suitable wireless standards such as thewell-known Bluetooth communication protocols or near field communication(NFC) protocols. In some embodiments, the network technology between thedevices 120 and access point 110 can include a customized version ofWLAN, Bluetooth, or customized versions of other suitable wirelesstechnologies.

The remote server 130 includes one or more computing devices remote fromthe wireless device 120 and capable of communicating over a network. Thewireless device 120 may transmit data to the remote server 130 forstorage or use of the data or to enable a user to access the data. Forexample, the remote server 130 may be a computing device used by a userto view video data captured by the wireless device 120 or to store andanalyze data captured or generated by the wireless device 120. Asanother example, the remote server 130 can include one or more storagedevices associated with a cloud storage service and configured to storethe data received from the wireless device 120.

In some embodiments, the access point 110 and the remote server 130 maybe coupled wirelessly (e.g., which may include employing an IEEE 802.11wireless network, or a data traffic network based on wireless telephonyservices such as 3G, 3.5G, 4G Long-Term Evolution (LTE) and the like).The technologies supporting the communications between the access point110 and the remote server 130 may include Ethernet (e.g., as describedin IEEE 802.3 family of standards) and/or other suitable types of areanetwork technologies, such as competing or alternative standards to theIEEE 802.11 family of standards (e.g., WiMAX). Examples of differentwireless protocols in the IEEE 802.11 family of standards can includeIEEE 802.11a, IEEE 802.11b, IEEE 802.11n, IEEE 802.11ac, IEEE 802.11af,IEEE 802.11ah, and IEEE 802.11ad.

FIG. 2 is a block diagram illustrating components of the wireless device120, according to one embodiment. As shown in FIG. 2 , the wirelessdevice 120 can include a processing unit 210 and an input/outputinterface 220. The example wireless device 120 shown in FIG. 2 includescomponents related to image capture. However, the wireless device 120can include different or additional components that enable the device toperform functions other than capturing images or video.

The processing unit 210 includes various components for processing datacollected by the wireless device 120 and managing communicating betweenthe wireless device 120 and other devices. For example, the processingunit 210 can include wireless communications interfaces such as a WiFiinterface 212 and a Bluetooth interface 214. The processing unit 210 canalso include a microprocessor 218 and an input/output block 216 thatenables communications between the processing unit 210 and the I/Ointerface 220.

The wireless communications interfaces 212, 214 enable communicationsbetween the device 120 and external devices such as the access point110. In some embodiments, a wireless communications interface (such asthe WiFi interface 212) includes a low-power processor that consumesless power than the microprocessor 218 and can perform some functionsrelated to establishing a network connection without powering on themicroprocessor 218. For example, the low-power processor can listen forprobes or pings from the access point 110.

The microprocessor 218 can be powered on during the active state of thewireless device 120 and powered off during the standby state. Themicroprocessor 218 can cause data to be transmitted to the access point110, for example receiving video data from the I/O interface 220 andsending the video data to the access point 110 over the WiFi interface212. The microprocessor 218 can also establish network connections withthe access point 110, transmitting data, probes, or other communicationsto the access point 110 and receiving communications from the accesspoint 110 to establish a connection.

The microprocessor 218 can measure properties of the communicationschannels 115 between the wireless device 120 and the access point 110.The measured properties may include channel interference, a signalstrength on the channel, capacity of the channel, or a number of droppedpackets on the channel. The channel properties can, in some embodiments,be measured by other components of the wireless device 120, such as thelow-power processor of the WiFi interface 212.

The I/O interface 220 receives inputs into the wireless device 120 andoutputs data from the device 120. As shown in FIG. 2 , the I/O interface220 can include a camera interface 222, an image processing unit 224, astorage interface 226, and a memory interface 228.

The camera interface 222 can receive image or video data from an imagesensor 230. The camera interface 222 can control parameters of the imageor video data captured by the image sensor 230, such as a frame rate, aresolution, or a duration of video capture. In some cases, the camerainterface 222 can trigger the image sensor 230 to capture video data inresponse to an input to the wireless device 120 such as a user input ora motion input detected by a motion sensor. For example, if the camerainterface 222 receives a signal from the motion sensor indicating thatmotion was detected within a field of view of the image sensor 230, thecamera interface 222 turns on the image sensor 230 to capture videodata. Alternatively, the camera interface 222 causes the imageprocessing unit 224 to store video or image data in response to motiondetection. The camera interface 222 may cause the image sensor 230 tocapture video data for a specified length of time, such as ten seconds,in response to each motion incident. Similarly, if video capture isinitiated in response to a user input, the camera interface 222 maycapture video data for a specified period of time, or may capture videodata until a second user input to end video capture is received.

The camera interface 222 can send the image or video data captured bythe image sensor 230 to the image processing unit 224 for processing andstorage. The image processing unit 224 may encode or compress the videodata for storage or transmission using any of a variety of codecs, suchas H.264 or H.265.

The memory controller 228 interface with a memory 250 of the wirelessdevice 120, for example to pass image or video data from the imageprocessing unit 224 for storage in the memory 250. The memory 250 is amachine-readable medium including volatile or non-volatile memorydevices. The memory 250 can store instructions for execution by themicroprocessor 218, the camera interface 222, the image processing unit224, or other components of the wireless device 120, as well as videodata or other data generated by the wireless device 120.

The storage interface 226 interfaces with a storage device 240, whichcan be internal or external to the wireless device 120. For example, thestorage device 240 can include a secure digital (SD) card. In somecases, if the storage device 240 is present, video data captured by thewireless device 120 can be sent to the storage device 240 for storage.If the storage device 240 is not present, the video data can be sent tothe memory 250 for temporary storage before transmitting the video datato an external device such as the remote server 130.

FIG. 3 is an interaction diagram illustrating a process for establishinga wireless network connection between the wireless device 120 and accesspoint 110. The process shown in FIG. 3 comprises communications betweenthe wireless device 120 and an access point 110. Arrows indicate adirection of initial communication for each step of the process, buteach step may comprise communications in both directions (i.e., from thewireless device 120 to the access point 110 as well as from the accesspoint 110 to the device 120). Furthermore, the process may includecommunications with more than one access point 110.

As shown in FIG. 3 , the wireless device 120 stores 302 an identifier ofa previously-used communications channel, as well as an identifier ofthe access point 110 with which the device 120 communicated. Forexample, after the device 120 has established a network connection withan access point 110, the device 120 stores information about the channeland access point used for the connection. When the device 120 returns toa standby state, the identifiers of the channel and/or access point canbe retained for attempting to re-establish the same connection.

After the initial network connection has ended (for example because thedevice 120 switched to a standby state), the wireless device 120 maylater need to re-establish a network connection. For example, whenmotion data triggers the device 120 to wake up and begin capturing data,the device 120 initiates a process to connect to a network. Rather thanscanning multiple channels to locate an access point, the device 120first attempts 304 to reconnect to the access point over the channelpreviously used. Because the relative positions of the device 120 andaccess point 110 may remain substantially constant, there may be a highlikelihood that the device 120 will connect to the same access point 110each time it re-establishes a network connection. By attempting toreconnect to the same channel previously used to communicate with theaccess point 110, the device 120 may reduce the amount of power used toestablish a network connection. For example, rather than transmitting aprobe on multiple channels, which can be a power-intensive process, thedevice 120 can begin by transmitting a probe only on the previously-usedchannel. The wireless device 120 can also store settings configured forthe previously-used channel, such as a data rate used on the channel,interference settings, or the like.

If the attempt 304 to re-establish the association on thepreviously-used channel fails, the wireless device 120 can scan 306 forother available channels. In one embodiment, the wireless device 120passively scans 306 for other channels by listening for a probe from theaccess point 110 on each of a plurality of channels. If the device 120receives a probe from the access point 110 on one of the channels, thedevice 120 can continue the association process on that channel. If thedevice 120 does not receive any probes from the access point 110, thedevice 120 can actively scan 306 for other channels by transmittingprobes on a plurality of channels. The device 120 can alternativelyperform an active scan instead of a passive scan, or may determinewhether to perform an active or passive scan based on the type of datato be transmitted to the access point 110. For example, if the device120 is capturing data to be live-streamed over a network, the device 120may perform an active scan instead of a passive scan to more quicklyestablish the network connection.

If the wireless device 120 performs an active scan, properties of thescan may vary depending on network conditions such as signal strength orinterference. In some cases, the wireless device 120 can adjust a numberof probes transmitted on each channel based on the network conditions.For example, if the device 120 transmits a probe on a first channel anddoes not receive a response from the access point, the device 120 canmeasure a signal strength or interference on the channel. If the device120 measures that a particular channel has an RSSI above a specifiedthreshold or interference below a corresponding threshold, the device120 can transmit one or more additional probes on the first channel. Onthe other hand, if the RSSI is low or the interference is high, thedevice 120 may wait a predetermined amount of time before transmittinganother probe on the first channel. Alternatively, the device maycontinue to transmit probes for a period of time (such as five seconds)and, if no response is received from the access point 110, wait apredetermined amount of time (such as ten seconds) before resuming theattempt to create a network connection.

Once the access point 110 responds to a probe from the wireless device120 or the device 120 responds to a probe from the access point 110, thedevice 120 authenticates 308 a connection to the access point over thechannel. The device 120 can authenticate to the access point by, forexample, WiFi Protected Access (WPA). If authentication fails, thewireless device 120 may retry authenticating the connection. The device120 dynamically selects a number of retries based on network conditions.In one embodiment, if the device 120 measures an RSSI on the channelthat is greater than a specified threshold, the device 120 may retry theauthentication for a longer period of time than if the RSSI is below thethreshold. For example, the device 120 may retry authenticating for tenseconds if the RSSI is above the threshold but may only retry for fiveseconds if the RSSI is below the threshold. The device 120 may alsobalance a number of retries and a duration of each attempt based on thenetwork conditions. For example, if there is high interference on achannel, ten retries back to back may fail. If the device 120 waits abrief period of time between each retry, such as one second, theinterference may decrease enough before the next retry to enableauthentication. The number of retries under given network conditions canbe selected by the wireless device 120. For example, in someinterference environments, higher data rates with more retries may bemore successful than using a lower data rate. As another example, a lowmodulation (e.g., using binary phase shift keying (BPSK)) with moreretries may be more successful in a long-range environment.

In some embodiments, the wireless device 120 can store data related tothe authentication process as the device 120 authenticates theconnection to the access point. If the authentication fails, thewireless device 120 can restart or recover the process from the pointwhere it failed or at a step before the point where it failed, ratherthan entirely restarting the authentication procedure.

After successfully authenticating 308, the wireless device 120 can lease310 an IP address, for example using the Dynamic Host ConfigurationProtocol (DHCP). Standard clients typically transmit data packetsassociated with a DHCP request using the physical layer rate (PHY rate)associated with a wireless link between the client and the access point.However, this rate can be too high for some applications, resulting inpacket loss. Retransmitting lost packets causes delay and extra energyusage by the client device. Accordingly, to reduce power usage, thewireless device 120 may use a data rate that is lower than the physicallayer rate. For example, the wireless device 120 can use a lowest datarate or a data rate associated with a layer higher than the physicallayer (e.g., an application layer data rate). In some cases, thewireless device 120 drops to a data rate that is lower than the PHY rateeach time the device leases an IP address. In other cases, the wirelessdevice 120 uses a data rate that is equivalent to the data rate used thelast time an IP address was leased. If a first attempt to lease an IPaddress fails, the wireless device 120 can retry the leasing process fora specified amount of time (or a specified number of attempts). In somecases, the number or duration of retries can be selected based onnetwork conditions such as signal strength or interference. For example,if interference on the channel is below a specified threshold, thewireless device 120 can use a higher number of retries than if theinterference is above the threshold. Furthermore, in some cases, thewireless device 120 can select a number or duration of retries based onpriority of the data that is being communicated. When transmittinghigher priority control packets, for example, the wireless device 120can retry a greater number of times than if the device 120 istransmitting lower-priority data packets.

The first time the wireless device 120 is turned on and connected to theaccess point 110, the device 120 may be registered to a cloud serversuch as the remote server 130. Registration can authenticate the device120 to the cloud server, allowing the device to, for example, transmitdata to the cloud server, receive data from the server, or communicatewith other devices a user has registered. The access point 110 canregister 312 the device 120 to the server, or the device 120 canregister to the server without passing data through the access point110. In some embodiments, the wireless device 120 transmits data duringthe registration process at a higher data rate than is used for othersteps of the process shown in FIG. 3 . For example, the data rate can behigher than the data rate used to lease an IP address. Furthermore, insome embodiments, the wireless device 120 can apply a power setting notused in other steps. For example, the wireless device 120 may remain inan active state until the registration is complete, even if theregistration fails one or more times after a first attempt.

If the network connection between the device 120 and access point 110 islost, the access point 110 may initiate a process to recover 314 theconnection. In some cases, the access point 110 may attempt to recover314 the connection by probing the wireless device 120 by low-layerhardware, for example over a data link layer.

If the low-layer probe fails, the access point 110 may attempt torecover 314 the connection by pinging the device 120 in the Internetlayer. If the device 120 does not respond to the ping, the access point110 may transmit a WiFi data probe to the device 120. The WiFi dataprobe can include, for example, one or more small data packets (e.g.,null data packets) or a management frame. If the device 120 responds toeither the ping or the probe, the access point 110 and wireless device120 can reestablish a communication session.

In some cases, the access point 110 can attempt to recover 314 theconnection by sending a basic service set transition management (BTM)frame to the wireless device 120. The BTM frame, as defined for exampleby the 802.11v standard, may typically be used either to instruct aclient device to transition to a specific access point, or to providethe client device with a list of preferred access points. For example, afirst access point may send a client device a BTM request frame withinstructions to transition to a second access point in order to betterbalance a network load. When the client device receives the BTM requestframe, it may disassociate from the first access point and attempt toconnect to the second access point. In some embodiments, by sending thewireless device 120 a BTM frame, the access point 110 can cause thedevice 120 to reinitiate a network connection to the access point 110.

If the network connection has still not been recovered, the access point110 may blacklist the device 120. Because the device 120 operating inthe standby mode may attempt to communicate with the access point 110over low-layer communications without switching to the active mode,blacklisting the device 120 can force the device 120 into active mode.When the device 120 becomes active, it may perform its usual steps toidentify and connect to the access point 110, thereby reinitiating anetwork connection with the access point.

If blacklisting fails, the access point 110 can attempt to recover 314the connection by pausing beacon transmission for a specified period oftime. Under normal operation, the access point 110 may broadcast abeacon at periodic intervals, such as once every 100ms. If the wirelessdevice 120 does not receive the beacon within a predetermined number ofthese broadcast intervals, the device 120 is configured to turn on andactively or passively scan for the access point 110. As a result, if theaccess point 110 stops sending a beacon for five beacon intervals, forexample, the wireless device 120 detects that the beacon has not beenreceived and begins scanning for the access point 110. The access point110 can then respond to the probe from the wireless device 120 andreauthenticate the connection.

Finally, if the connection has still not been restored, the access point110 can restart a WiFi signal. Restarting the signal can force thewireless device 120 to reconnect to the access point 110.

FIG. 4 is a block diagram illustrating an example of a processing system400 in which at least some operations described herein can beimplemented. The processing system 400 may include one or more centralprocessing units (“processors”) 402, main memory 406, non-volatilememory 410, network adapter 412 (e.g., network interfaces), videodisplay 418, input/output devices 420, control device 422 (e.g.,keyboard and pointing devices), drive unit 424 including a storagemedium 426, and signal generation device 430 that are communicativelyconnected to a bus 416. The bus 416 is illustrated as an abstractionthat represents any one or more separate physical buses, point to pointconnections, or both connected by appropriate bridges, adapters, orcontrollers. The bus 416, therefore, can include, for example, a systembus, a Peripheral Component Interconnect (PCI) bus or PCI-Express bus, aHyperTransport or industry standard architecture (ISA) bus, a smallcomputer system interface (SCSI) bus, a universal serial bus (USB), IIC(I2C) bus, or an Institute of Electrical and Electronics Engineers(IEEE) standard 494 bus, also called “Firewire.”

In various embodiments, the processing system 400 operates as part of auser device, although the processing system 400 may also be connected(e.g., wired or wirelessly) to the user device. In a networkeddeployment, the processing system 400 may operate in the capacity of aserver or a client machine in a client-server network environment, or asa peer machine in a peer-to-peer (or distributed) network environment.

The processing system 400 may be a server computer, a client computer, apersonal computer, a tablet, a laptop computer, a personal digitalassistant (PDA), a cellular phone, a processor, a web appliance, anetwork router, switch or bridge, a console, a hand-held console, agaming device, a music player, network-connected (“smart”) televisions,television-connected devices, or any portable device or machine capableof executing a set of instructions (sequential or otherwise) thatspecify actions to be taken by the processing system 400.

While the main memory 406, non-volatile memory 410, and storage medium426 (also called a “machine-readable medium) are shown to be a singlemedium, the term “machine-readable medium” and “storage medium” shouldbe taken to include a single medium or multiple media (e.g., acentralized or distributed database, and/or associated caches andservers) that store one or more sets of instructions 428. The term“machine-readable medium” and “storage medium” shall also be taken toinclude any medium that is capable of storing, encoding, or carrying aset of instructions for execution by the computing system and that causethe computing system to perform any one or more of the methodologies ofthe presently disclosed embodiments.

In general, the routines executed to implement the embodiments of thedisclosure, may be implemented as part of an operating system or aspecific application, component, program, object, module or sequence ofinstructions referred to as “computer programs.” The computer programstypically comprise one or more instructions (e.g., instructions 404,408, 428) set at various times in various memory and storage devices ina computer, and that, when read and executed by one or more processingunits or processors 402, cause the processing system 400 to performoperations to execute elements involving the various aspects of thedisclosure.

Moreover, while embodiments have been described in the context of fullyfunctioning computers and computer systems, those skilled in the artwill appreciate that the various embodiments are capable of beingdistributed as a program product in a variety of forms, and that thedisclosure applies equally regardless of the particular type of machineor computer-readable media used to actually effect the distribution. Forexample, the technology described herein could be implemented usingvirtual machines or cloud computing services.

Further examples of machine-readable storage media, machine-readablemedia, or computer-readable (storage) media include, but are not limitedto, recordable type media such as volatile and non-volatile memorydevices 410, floppy and other removable disks, hard disk drives, opticaldisks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital VersatileDisks (DVDs)), and transmission type media, such as digital and analogcommunication links.

The network adapter 412 enables the processing system 400 to mediatedata in a network 414 with an entity that is external to the processingsystem 400 through any known and/or convenient communications protocolsupported by the processing system 400 and the external entity. Thenetwork adapter 412 can include one or more of a network adaptor card, awireless network interface card, a router, an access point, a wirelessrouter, a switch, a multilayer switch, a protocol converter, a gateway,a bridge, bridge router, a hub, a digital media receiver, and/or arepeater.

The network adapter 412 can include a firewall which can, in someembodiments, govern and/or manage permission to access/proxy data in acomputer network, and track varying levels of trust between differentmachines and/or applications. The firewall can be any number of moduleshaving any combination of hardware and/or software components able toenforce a predetermined set of access rights between a particular set ofmachines and applications, machines and machines, and/or applicationsand applications, for example, to regulate the flow of traffic andresource sharing between these varying entities. The firewall mayadditionally manage and/or have access to an access control list whichdetails permissions including for example, the access and operationrights of an object by an individual, a machine, and/or an application,and the circumstances under which the permission rights stand.

As indicated above, the techniques introduced here implemented by, forexample, programmable circuitry (e.g., one or more microprocessors),programmed with software and/or firmware, entirely in special-purposehardwired (i.e., non-programmable) circuitry, or in a combination orsuch forms. Special-purpose circuitry can be in the form of, forexample, one or more application-specific integrated circuits (ASICs),programmable logic devices (PLDs), field-programmable gate arrays(FPGAs), etc.

In the foregoing specification, the present embodiments have beendescribed with reference to specific exemplary embodiments thereof. Itwill, however, be evident that various modifications and changes may bemade thereto without departing from the broader scope of the disclosureas set forth in the appended claims. The specification and drawings are,accordingly, to be regarded in an illustrative sense rather than arestrictive sense.

It should also be understood that all block diagrams in the figures arefor illustration purpose only, and should not preclude the scope of thisinvention to include any logic equivalents or combinations thereof,including removing, substituting, or adding other logic gates thatachieves the same or similar functions consistent with the features ofthe present invention. Further, it should be noted that the variouscircuits disclosed herein may be described using computer aided designtools and expressed (or represented), as data and/or instructionsembodied in various computer-readable media, in terms of theirbehavioral, register transfer, logic component, transistor, layoutgeometries, and/or other characteristics. Formats of files and otherobjects in which such circuit expressions may be implemented include,but are not limited to, formats supporting behavioral languages such asC, Verilog, and VHDL, formats supporting register level descriptionlanguages like RTL, and formats supporting geometry descriptionlanguages such as GDSII, GDSIII, GDSIV, CIF, MEBES and any othersuitable formats and languages. Computer-readable media in which suchformatted data and/or instructions may be embodied include, but are notlimited to, non-volatile storage media in various forms (e.g., optical,magnetic or semiconductor storage media).

1. A client device, comprising: a microprocessor having an active stateand a standby state, wherein the microprocessor is configured toexchange data with an access point over a wireless network connectionwhile operating in the active state; and a wireless interface includinga low-power processor, wherein the low-power processor is configured to:while the microprocessor is in the standby state, detect a probereceived from the access point over a data link layer between thewireless interface and the access point; and in response to receivingthe probe, cause the microprocessor to enter the active state, whereinthe microprocessor is configured to reconnect to the access point uponre-entering the active state.
 2. The client device of claim 1, whereinthe client device comprises a camera that is controlled by themicroprocessor to capture image data when the microprocessor is in theactive state.
 3. The client device of claim 2, further comprising amotion sensor; wherein the low-power processor triggers themicroprocessor to switch from the standby state to the active state inresponse to detecting motion by the motion sensor.
 4. The client deviceof claim 1, wherein the client device comprises an Internet-of-Thingsdevice.
 5. The client device of claim 1, wherein reconnecting to theaccess point comprises: transmitting to the access point, on each of aplurality of wireless communication channels, a probe to request aconnection to the access point via a corresponding wirelesscommunication channel; and responsive to a response probe received fromthe access point on a first wireless communication channel of theplurality of wireless communication channels, sending communications tothe access point on the first wireless communication channel.
 6. Theclient device of claim 1, wherein the microprocessor is configured toexchange data with the access point by communicating with the accesspoint over a selected wireless communication channel, and whereinreconnecting to the access point comprises: transmitting to the accesspoint, via the selected wireless communication channel, a probe torequest a connection to the access point on the selected wirelesscommunication channel.
 7. The client device of claim 6, wherein themicroprocessor is further configured to: responsive to receiving noresponse from the access point to the probe transmitted via the selectedwireless communication channel, passively scan for one or more otherwireless communication channels.
 8. The client device of claim 6,wherein the microprocessor is further configured to: responsive toreceiving no response from the access point to the probe transmitted viathe selected wireless communication channel, transmit a selected numberof probes to the access point over each of one or more other wirelesscommunication channels, wherein the selected number of probes isselected based on at least one of a signal strength measured on arespective wireless communication channel or an amount of interferencemeasured on the respective wireless communication channel.
 9. The clientdevice of claim 6, wherein the microprocessor is further configured to,responsive to receiving no response from the access point to the probetransmitted via the selected wireless communication channel: measure asignal strength on the selected wireless communication channel; andresponsive to the signal strength being greater than a threshold,transmit a second probe to the access point via the selected wirelesscommunication channel.
 10. The client device of claim 9, wherein themicroprocessor is further configured to: responsive to the signalstrength being less than the threshold, transmit a second probe to theaccess point via the selected wireless communication channel after apredetermined amount of wait time.
 11. The client device of claim 1,wherein the microprocessor is further configured to: transmitting datapackets to the access point to lease an internet protocol (IP) address,the data packets transmitted at a data rate that is less than a physicaldata rate associated with a wireless link between the client device andthe access point.
 12. A method comprising: at a client device configuredto communicate over a wireless network, exchanging data with an accesspoint over a wireless network connection; ending the wireless networkconnection to the access point; after ending the wireless networkconnection, receiving a probe from the access point over a data linklayer; and in response to receiving the probe, reconnecting to theaccess point.
 13. The method of claim 12, wherein reconnecting to theaccess point comprises: transmitting to the access point, on each of aplurality of wireless communication channels, a probe to request aconnection to the access point via a corresponding wirelesscommunication channel; and responsive to a response probe received fromthe access point on a first wireless communication channel of theplurality of wireless communication channels, sending communications tothe access point on the first wireless communication channel.
 14. Themethod of claim 12, wherein exchanging data with the access point overthe wireless network connection comprises communicating with the accesspoint over a selected wireless communication channel, and whereinreconnecting to the access point comprises: transmitting to the accesspoint, via the selected wireless communication channel, a probe torequest a connection to the access point on the selected wirelesscommunication channel.
 15. The method of claim 14, further comprising:responsive to receiving no response from the access point to the probetransmitted via the selected wireless communication channel, passivelyscanning for one or more other wireless communication channels.
 16. Themethod of claim 14, further comprising: responsive to receiving noresponse from the access point to the probe transmitted via the selectedwireless communication channel, transmitting a selected number of probesto the access point over each of one or more other wirelesscommunication channels, wherein the selected number of probes isselected based on at least one of a signal strength measured on arespective wireless communication channel or an amount of interferencemeasured on the respective wireless communication channel.
 17. Themethod of claim 14, further comprising, responsive to receiving noresponse from the access point to the probe transmitted via the selectedwireless communication channel: measuring a signal strength on theselected wireless communication channel; and responsive to the signalstrength being greater than a threshold, transmitting a second probe tothe access point via the selected wireless communication channel. 18.The method of claim 17, further comprising: responsive to the signalstrength being less than the threshold, transmitting a second probe tothe access point via the selected wireless communication channel after apredetermined amount of wait time.
 19. The method of claim 12, furthercomprising: transmitting data packets to the access point to lease aninternet protocol (IP) address, the data packets transmitted at a datarate that is less than a physical data rate associated with a wirelesslink between the client device and the access point.
 20. The method ofclaim 12, wherein the client device has an active operation state and astandby operation state, wherein the client device is configured toexchange data with the access point during the active operation state,and wherein ending the wireless network connection to the access pointcomprises switching from the active operation state to the standbyoperation state.